/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * PanelCidade.java
 *
 * Created on 27/12/2012, 01:52:00
 */
package inovacao.gui;

import inovacao.dao.CidadeDAO;
import inovacao.entidades.Cidade;
import inovacao.modelos.PagingModel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.util.ArrayList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;


/**
 *
 * @author Giovani
 */
public final class PanelCidade extends javax.swing.JInternalFrame {

    /** Creates new form PanelCidade */
    private static PanelCidade INSTANCE = null;
    private GridDetalhe jt = null;

    private PanelCidade() {
        super("Cidades");
        addViews();
    }

    public static PanelCidade getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new PanelCidade();
        }
        return INSTANCE;

    }

    public void addViews() {

        PagingModel pm = new PagingModel(new String[]{"CÓDIGO", "DESCRIÇÃO"});
        pm.setPageSize(100);
        pm.setEditavel(false);

        CidadeDAO cidadeDAO = new CidadeDAO();
        for (Cidade cidade : cidadeDAO.findAll()) {
            pm.addRow(new Object[]{"" + cidade.getIdcidade() + "", cidade});
        }
        jt = new GridDetalhe(pm);
        jt.setFillsViewportHeight(true);
        jt.setAutoCreateRowSorter(true);
        jt.validate();

        JScrollPane jsp = PagingModel.createPagingScrollPaneForTable(jt);
        MasterFormCidade masterForm = new MasterFormCidade(jt);
        JScrollPane jsp2 = new JScrollPane(masterForm);
        Navegadores navegadores = new Navegadores(jt, masterForm);
        jt.setNavegadores(navegadores);
        jt.setMasterForm(masterForm);
        jt.selectPrimeiraLinha();
        jt.getColumnModel().getColumn(1).setPreferredWidth(50);

        ///////////////////////////////////////////////////////
        JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jsp2, jsp);
        splitPane.setOneTouchExpandable(true);
        splitPane.setDividerLocation(150);
        //////////////////////////////////////////////////////
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        panel.add(navegadores, BorderLayout.NORTH);
        panel.add(splitPane, BorderLayout.CENTER);
        add(panel);

        final ArrayList<Component> componentes = masterForm.allComponentes();
        for (Component componente : componentes) {
            componente.setEnabled(false);
        }

/*
        DocumentListener documentListener = new DocumentListener() {

            public void changedUpdate(DocumentEvent documentEvent) {
                printIt(documentEvent);
            }

            public void insertUpdate(DocumentEvent documentEvent) {
                printIt(documentEvent);
            }

            public void removeUpdate(DocumentEvent documentEvent) {
                printIt(documentEvent);
            }

            private void printIt(DocumentEvent documentEvent) {
                DocumentEvent.EventType type = documentEvent.getType();
                Document source = documentEvent.getDocument();
                int length = source.getLength();

                try {
                    int selectedRow = jt.getSelectedRows()[0];
                    int selectedColumns = jt.getSelectedColumns()[0];
                    jt.setValueAt(source.getText(0, length).toString(), selectedRow, 1);
                } catch (BadLocationException ex) {
                    Logger.getLogger(AddingDocumentListenerJTextFieldSample.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        };
        ((JTextField) componentes.get(1)).getDocument().addDocumentListener(documentListener);
        */
    }
}
